//创建服务器对象
var http = require("http");

//创建文件操作对象
var fs   = require("fs");

var server = http.createServer(function(req,res){
    //收到客户端提交过来的请求后要做的事情

    //IP地址
    var ip = req.connection.remoteAddress;
    console.log(ip+"来了！开始计算水仙花数！");

    //计算水仙花数的代码块
    for(var i=1000; i<=9999; i++){
        //每一个i进来之后，都要先拆分成四个位数
        var ge   = i % 10 ;
        var shi  = parseInt(i / 10) % 10;
        var bai  = parseInt(i /100) % 10;
        var qian = parseInt(i / 1000);

        var sum = Math.pow(ge,4) + Math.pow(shi,4) +Math.pow(bai,4) + Math.pow(qian,4);

        //判断每一次i的四次方和是否和i相等
        if(sum == i){
            console.log(ip + "算出了水仙花数是：" + i);
        }
    }

    console.log(ip + "已经算出了全部水仙花数，开始读取文本文件");

    //读取指定的文本页面
    fs.readFile("./public/01.html",function(err,filecontent){
        //设置response响应头部
        res.setHeader("Content-type","text/html;charset=UTF-8");
        //把文本文件的内容进行输出呈现
        res.end(filecontent);

        //读取完成后提示信息
        console.log(ip+"读取文本文件完毕！");
    });
});


server.listen(3000);
console.log("服务器已经运行在3000端口上");



/*
NodeJS适合开发的业务:

当应用程序需要处理大量并发的I/O，而在向客户端发出响应之前，应用程序内部病不需要进行非常复杂的处理的时候，Node.js非常适合，Node.js也非常适合与web socket配合，
开发长连接的实时交互应用程序。

比如：用户表单收集系统、考试管理系统、打分系统、聊天室、图文直播、提供JSON的API(为前台Angular等使用)。
*/
